In most data communication systems, it is required to assure the complete transmission of information between two computers.
Typically, the user operates a personal computer (referred to as “client computer”) that has to communicate with a remote computer (referred to as “server computer”). The client computer has communication software to communicate with the server computer and the server computer has application software to execute a business application.
During the communication dialog (also referred to as “session”), the user enters orders (e.g., for commercial items), issues a query (e.g., in a database), requests the server computer to analyze data, or performs other actions. During each session, the server computer allocates resources, for example, to store previous input data and intermediate results.
Traditionally, the communication software on the client computer is specialized to the particular application software of the server computer. Often the communication software comprises a graphical user interface that is tailored to the application. Client and server computers use communication protocols that immediately notify the server computer when the user at the client computer terminates the session. Before terminating, the server computer asks the user to save data that he or she has inputted (so-called “user committing”). The server computer then releases (de-allocates) the resources.
Using specialized communication software at the client computer is inconvenient. Besides the time that is required to install it, installing the communication software might require the payment of license fees. Also, regular and costly updates are required. There is a tendency to communicate with standard “off-the-shelf” software such as Internet browsers. Browsers are installed in almost every personal computer. The hypertext transfer protocol (HTTP) became the standard communication protocol in the Internet. However, HTTP does not automatically notify the server computer about a session termination by the client computer.
Typically, the server computer waits for a predetermined period of time after the last client-server-communication and then releases the resources. Keeping the resources allocated during this period is inconvenient, for example, because the resource blocks memory and slows down performance.
For client-server communication, the following references are useful: U.S. Pat. No. 5,848,246 (Gish), U.S. Pat. No. 6,011,805 (Esteve).
There is an ongoing need to provide improved computer systems, computer programs, and methods for communication between client and server computers that use HTTP-browsers.